<?php
namespace app\index\controller;
use app\index\model\Hostpital;
use think\Controller;
use think\Db;
use think\Model;
use think\Request;
USE app\index\model\Common;
class Hospital extends Base
{
        public function index(){
            $data = Db::name('xt_ac_qyb')->select();
            
            $this->assign('data',$data);
            return $this->fetch('Hospital/index');
        }
         public  function edit(){
            return view();
    }

    //医院增加
    public function add()
    {
        $mc = $_POST['mc'];
        $dh = $_POST['dh'];
        $yytm = $_POST['yytm'];
        
    

        if ($yytm == "zac-no") {
            /*$this->error('--名称--不能为空失败');*/
            show('0', '区域代号不能为空');
        }
        if (!trim($mc)) {
            /*$this->error('--名称--不能为空失败');*/
            show('0', 'mc不能为空');
        }
        if (!trim($yytm)) {
            /*$this->error('--名称--不能为空失败');*/
            show('0', '区域代号不能为空或者no');
        }
        if (!trim($dh)) {
            /*$this->error('--代号--不能为空失败');*/
            show('0', '代号不能为空失败');
        }
        if (strlen($dh) !== 6) {
            /* $this->error('--代号--必须六位数');*/
            show('0', '代号--必须六位数');
        }

        //先去查询是否有这家客户
        if (Hostpital::get($dh)) {
            /*$this->error('该条码已经存在',url('hospital/index'));*/
            show('0', '该条码已经存在');

            /*            $this->assign('data',$data);
                          $this->fetch('hospital/index');*/
        } else {
            //开始增加
            $data['yytm'] = $yytm;
            $data['dh'] = $dh;
            $data['mc'] = $mc;
            $data['loginname'] = $dh;
            $data['password'] = $dh;
            $data['createdate'] = date('Y-m-d h:i:s', time());
            $data['sfjb'] = '3';
            $data['dycs'] = '1';
            $data['printfs'] = '1';
            $data['fsfs'] = '0';
            $data['yydj'] = '4';
            $data['title'] = '1';
            $data['psfs'] = '网络打印';
            $data['yydj'] = '4';
            $data['beizhu'] = '2';
            $res = Hostpital::create($data);
            if ($res) {
                //保存到[db.zAc_hostpital]记录
                $insertmsg = Db::table('xt_hospital')
                    ->insert([
                        'dh' => $dh,
                        'mc' => $mc,
                        'creatime' => date('Y-m-d h:i:s', time())
                    ]);
                if ($insertmsg) {
                    //添加记录成功
                    //判断是否添加电子签章
                    if ($Signature = !empty($_POST['Signature'])) {
                        if (Model('Hostpital')->InsertSignature($dh)) {
                            //log记录
                            Model('Log')->addLog("新增了一个医院.$mc.**添加签章**.区域代号.$yytm.", 1, $dh);
                            show('1', '添加医院成功-添加签章成功');
                        }
                        show('1', '添加医院成功');
                    }
                    /*$this->success('添加成功-zAc',url('hospital/index'));*/
                    Model('Log')->addLog("新增了一个医院.$mc.**未添加签章**", 1, $dh);
                    show('1', '添加成功--记录成功-zAc');
                } else {

                    /* $this->success('添加失败--zAc',url('hospital/index'));*/
                    show('0', '添加医院成功 --记录失败--zAc');
                }
            }
        }
    }

    //查询数据列表
    public function read(){
        $dh = $_POST['dh'];
        if(!trim($dh) || strlen($dh) !== 6) {
            $this->error('条码不符合规则');
        }
        $data = Model('Hostpital')->GetHostpitalByDh($dh);
        /*$hospitalConfig =*/
        if($data){
            //判断是否有电子签章
            $res = Db::table('Report.HospitalExtendPersonalise')->where('HosCode',$dh)->find();
            if($res){
                //有的话就给 1
                $data['sign'] ='1';
            }
            //判断是否停用
            //WeChat_Users set IsDisable = '1' where LogId
            $resable = Db::table('WeChat_Users')->where('LogId',$dh)->find();
            if($resable){
                $data['IsDisable'] =$resable['IsDisable'];
            }
            $this->assign('data',$data);
            return $this->fetch('hospital/edit');
        }else{
            $this->error('不存在该记录',url('hospital/edit'));
        }
    }

    //删除医院
    public  function DelHospital(){
        $dh = $_POST['dh'];
        if (!trim($dh)) {
            /*$this->error('--代号--不能为空失败');*/
            show('0', '代号不能为空失败');
        }
        if (strlen($dh) !== 6) {
            /* $this->error('--代号--必须六位数');*/
            show('0', '代号--必须六位数');
        }
        $data = Model('hostpital')->DelHospitalByDh($dh);
        if($data){
            //添加日志
            Model('Log')->addLog("删除了一个医院.$dh", 1, $dh);
            show('1','删除成功');
        }
        show('0','删除失败');
    }

    /***
     * 加急客户处理
     */

    public function UpdateReportMergeFlag(){
        $dh = $_POST['dh'];
        if (!trim($dh)) {
            /*$this->error('--代号--不能为空失败');*/
            show('0', '代号不能为空失败');
        }
    /*    if (strlen($dh) !== 6) {
            show('0', '代号--必须六位数');
        }*/
        $dh = $dh.'%';
        $res = Db::execute("update Lis_ReportTasks set MergeFlag  = '9999' where Barcode like  :Barcode and ProcessFlag !='1'", ['Barcode' => $dh]);
        if($res){
            //开始记录
            Model('Log')->addLog("加急.$dh.的报告生成", 1, $dh);
            show('1', '加急成功');
        }
        show('0', '加急失败 不存在正在生成报告的该客户');
    }

    //修改增加签章  并且重新生成最近三天的报告
    public function SignHospital(){
        $dh = $_POST['dh'];
        if (!trim($dh)) {
            /*$this->error('--代号--不能为空失败');*/
            show('0', '代号不能为空失败');
        }
        if (strlen($dh) !== 6) {
            /* $this->error('--代号--必须六位数');*/
            show('0', '代号--必须六位数');
        }
        $res = Model('Hostpital')->UplSignatures($dh, 1);
        if(!$res){
            show('0', '更新签章错误');
        }
        // 开始重新生成 -----默认取最近七天的时间
        $TestDate = date("Y-m-d H:i:s", strtotime("-7 day"));
        $data = Model('common')->ModifyReportStatusByYydhCdrq($dh.'%', $TestDate);
        if($data){
            //添加日志
            Model('Log')->addLog("增加修改了.$dh.的电子签章 重新生成最近七天 ", 1, $dh);
            $count = Model('common')->getReportCreateNow();
            show('1',"签章增加成功**重新生成cdrq七天前的**当前正在生成报告有**$count**个");
            }
            show('0','签章修改成功 重新生成找不到最近三天的生成记录');
    }
    //更新用户数据

    //  更新医院
    public  function updateHospital(){
        $dh = $_POST['ybid'];
        if (!trim($dh) && !trim($_POST['mc']) && !trim($_POST['pwd']) ) {
            $this->error('不能为空','hospital/edit');
        }
        
        if (strlen($dh) !== 6) {
            /* $this->error('--代号--必须六位数');*/
            $this->error('不能为空','hospital/edit');
        }
        if(!$Hostpital = Hostpital::get($dh)){
            $this->error('不存在该医院','hospital/edit');
        }
        //判断是否是现金条码
       /* if($dh == 610001){
            $this->error('现金条码不支持修改','hospital/edit');
        }*/
        $Hostpital->mc =$_POST['mc'];
        $Hostpital->password=$_POST['pwd'];
        $Hostpital->sfjb = $_POST['sfjb'];
        $Hostpital->beizhu = $_POST['beizhu'];
        unset($Hostpital->ROW_NUMBER);

        //停用
        //UPDATE xt_yymc_print SET useflag='0' WHERE dh IN (SELECT 代号 FROM YYMC_DY)
        //update WeChat_Users set IsDisable = '1' where LogId in( '669002','6b1012','6c1006','6c3003','6c6006')

        if($Hostpital->force()->save()){

            //医院更新成功  更新电子签章信息
            if($_POST['sign'] == 1 || $_POST['sign'] == 0 ){
                //开始修改签章
                $res = Model('Hostpital')->UplSignatures($dh, $_POST['sign']);
                if($res){

                    //去更新 wechart_user isdisable 这儿判断更新的
                    $bb = Db::table('WeChat_Users')->where('logid',$dh)->find();
                    if($bb){
                        Db::table('WeChat_Users')->where('logid',$dh)->update(['IsDisable'=>$_POST['IsDisable']]);
                    }
                    //开始记录
                    Model('Log')->addLog("修改了.$dh.的客户信息. 账号.{$dh}.收费级别.{$_POST['sfjb']}.**..医院性质.{$_POST['beizhu']}", 1, $dh);
                    $this->success('全部信息更新成功','hospital/edit');
                }
                $this->error('签章保存失败','hospital/edit');
            }
            $this->success('医院信息更新成功','hospital/edit');
        }
            $this->error('更新保存失败','hospital/edit');
    }
}